home *** CD-ROM | disk | FTP | other *** search
- #!/sprite/cmds/perl
-
- if ($#ARGV != 1) {
- printf("$#ARGV\n");
- printf("Usage: kdiff oldKernel newKernel\n");
- exit;
- }
- if (! -e $ARGV[0]) {
- die("File $ARGV[0] does not exist.\n");
- }
- if (! -e $ARGV[1]) {
- die("File $ARGV[1] does not exist.\n");
- }
- open(fid, "strings $ARGV[0] |") || die ("Can't open pipe.\n");
- while (<fid>) {
- if (/RCS/) {
- ($d1,$file, $version) = split;
- $versionArray{$file} = $version;
- }
- }
-
- open(fid, "strings $ARGV[1] |") || die ("Can't open pipe.\n");
- while (<fid>) {
- if (/RCS/) {
- ($d1, $file, $version) = split;
- if (! defined($versionArray{$file})) {
- $#newFiles++;
- $newFiles[$#newFiles] = $file;
- } elsif ($version != $versionArray{$file}) {
- do PrintLog($file, $versionArray{$file}, $version);
- }
- $used{$file} = 1;
- }
- }
- if ($#newFiles > 0) {
- printf("\nThe following files were added to the new kernel:\n\n");
- for ($i = 0; $i <= $#newFiles; $i++) {
- printf("$newFiles[$i]\n");
- }
- }
-
- $headerPrinted = 0;
- while (($file, $version) = each(%versionArray)) {
- if (! defined($used{$file})) {
- if ($headerPrinted == 0) {
- printf(
- "\nThe following files were not used in the new kernel:\n\n");
- $headerPrinted = 1;
- }
- printf("$file\n");
- }
- }
-
- sub PrintLog {
- local($stream);
- local($start) = 0;
- $oldVersion = $_[1];
- $newVersion = $_[2];
- open($stream, "rlog $_[0] |") || die("Can't rlog $_[0]\n");
- printf("******* $_[0]:\n");
- while (<$stream>) {
- ($f1, $f2) = split;
- if (($f1 eq "revision") && ($f2 eq $newVersion)) {
- $start = 1;
- } elsif ($f2 eq $oldVersion) {
- if ($start == 0) {
- printf("New version %s appears older than old version %s\n",
- $newVersion, $oldVersion);
- printf("Were the kernel arguments in the correct order?\n");
- }
- last;
- }
- if ($start) {
- print;
- }
- }
- print("\n");
- }
-
-
-
-
-